# 1、两数之和
# 给定一个整数数组 nums和一个整数目标值target，请你在该数组中找出 和为目标值 target的那两个整数，并返回它们的数组下标。
# 你可以假设每种输入只会对应一个答案。但是，数组中同一个元素在答案里不能重复出现。
# 你可以按任意顺序返回答案。
#
# 示例
# 输入：nums = [2,7,11,15], target = 9
# 输出：[0,1]
# 解释：因为 nums[0] + nums[1] == 9 ，返回 [0, 1]
# ==============================第1题=======================================
# def twoSum(nums, target):
#     num_dict = {}  # 存储元素和索引的字典
#     for i, num in enumerate(nums):
#         diff = target - num  # 计算差值
#         if diff in num_dict:
#             return [num_dict[diff], i]  # 返回两个数的下标
#         num_dict[num] = i  # 将当前元素和索引存储到字典中
#     return []  # 如果没有找到符合条件的两个数，则返回空列表
#
# nums = [2, 7, 11, 15]
# target = 9
# result = twoSum(nums, target)
# print(result)  # 输出：[0, 1]
# ===============================第1题======================
# 2、最后一个单词的长度
# 给你一个字符串 s，由若干单词组成，单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。
# 单词 是指仅由字母组成、不包含任何空格字符的最大子字符串
#
# 示例
# 输入：s = "Hello World"
# 输出：5
# 解释：最后一个单词是“World”，长度为5。
# ===============================第2题====================================
# def lengthOfLastWord(s):
#     s = s.strip()  # 去除字符串两端的空格
#     word_list = s.split()  # 分割字符串为单词列表
#     if len(word_list) == 0:  # 若列表为空，则说明没有单词
#         return 0
#     last_word = word_list[-1]  # 获取列表中的最后一个单词
#     return len(last_word)  # 返回最后一个单词的长度
#
# s = "Hello World"
# length = lengthOfLastWord(s)
# print(length)  # 输出：5
# ================================第2题==================================
# 3、编写一个程序，要求用户输入一个字符串，并将其反转输出。
# ==============================第3题=======================================
# def question3(s):
#     return s[::-1]
# input3 = input("请输入一个字符串：")
# result3 = question3(input3)
# print("反转后的字符串为：", result3)
# ================================第3题==========================================
# 4、编写一个程序，要求用户输入一个整数，判断它是奇数还是偶数，并输出结果
#
# def question4(num):
#     if num % 2 == 0:
#         return "偶数"
#     else:
#         return "奇数"
# input4 = int(input("请输入一个整数："))
# result4 = question4(input4)
# print("该数是：", result4)
# 5、编写一个程序，计算并输出 1 到 100 之间所有能被 7 整除但不能被 5 整除的数的和
#
# sum = 0
# for i in range(1, 101):
#     if i % 7 == 0 and i % 5 != 0:
#         sum += i
# print("1到100之间能被7整除但不能被5整除的数的和为：", sum)
# 6、输入任意三个数，用if语句编写求出其中最小值的程序
#
# def q6(a, b, c):
#     r6 = a
#     if b < r6:
#         min_num = b
#     if c < r6:
#         min_num = c
#     return r6
# no1 = int(input("请输入第一个数："))
# no2 = int(input("请输入第二个数："))
# no3 = int(input("请输入第三个数："))
# result6 = q6(no1, no2, no3)
# print("最小值为：", result6)

# 7、打印1 - 100之间的偶数
#
# for i in range(2, 101, 2):
#     print(i)
# 8、九九乘法表
#
# for i in range(1, 10):
#     for j in range(1, i+1):
#         print(f"{j} × {i} = {i*j}", end="\t")
#     print()
# 9、求和运算
# 求s = a+aa+aaa+aaaa+aaaaa.....，其中a是一个数字。例如：
# 2+22+222+2222+22222（此时共有5个数相加），几个数相加由键盘控制。
# 输入 ：
# a = 4
# n = 5
# 输出：
# 4
# 44
# 444
# 4444
# 44444
# 前5个数的和为：49380
#
# a = int(input("请输入一个数字："))
# n = int(input("请输入相加的个数："))
#
# s = 0
# for i in range(1, n+1):
#     s += int(str(a) * i)
#     print(int(str(a) * i))
#
# print("前", n, "个数的和为：", s)
# 10、while 循环实现输出 2-3+4-5+6...+100 的和
#
# sum10 = 0
# for i in range(2, 101):
#     if i % 2 == 0:
#         sum10 += i
#     else:
#         sum10 -= i
# print("2-3+4-5+6...+100的和为：", sum10)
# 11、有一个奇数（13），然后判断最少几个9除于该数的结果为整数
#
# num = 13
# count = 1
# while True:
#     quotient = int("9" * count) // num
#     if int("9" * count) % num == 0:
#         break
#     count += 1
#
# print("最少", count, "个9除于13的结果为整数。")
# 12、重复让用户输入一个单词，直到用户输入bye才退出，统计一下，用户一共输入了多少个单词？
#
# count = 0
# while True:
#     word = input("请输入一个单词（输入'bye'退出）：")
#     count += 1
#     if word == "bye":
#         break
#
# print("一共输入了", count-1, "个单词。")
# 13、实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
#
# username = ""
# password = ""
# count = 0
#
# while count < 3:
#     username = input("请输入用户名：")
#     password = input("请输入密码：")
#
#     if (username == "seven" or username == "alex") and password == "123":
#         print("登陆成功！")
#         break
#
#     count += 1
#     if count >= 3:
#         print("登陆失败！")
#         break
#     else:
#         print("用户名或密码错误，请重新输入。")

# 14、用程序计算100以内有多少个3的整数倍数字
#
# count = 0
# for i in range(1, 101):
#     if i % 3 == 0:
#         count += 1
# print("100以内有", count, "个3的整数倍数字。")
# 15、实现判断用户输入的内容中是否有c,要求最多输入三次
#
# count = 0
# while count < 3:
#     content = input("请输入内容：")
#     if "c" in content:
#         print("输入的内容中包含字母'c'。")
#         break
#     count += 1
#
# if count == 3:
#     print("已达到最大输入次数，未找到字母'c'。")
# 16、一行代码实现：生成一个1-100的列表
#
# print(list(range(1, 101)))
# 17、让用户输入个人基本信息，包括 姓名、电话、住址、年龄，通过字典保存用户的数据信息，当用户输入q的时候，结束输入
#
# 结束输入后，打印显示全部的用户名，并要求选择一个名称
#
# 然后打印输出这个用户的全部信息，输出信息的格式：用户 xxx，电话是xxx，地址是xxx，年龄是xxx
#
# user_data = {}
# while True:
#     name = input("请输入姓名：")
#     if name == "q":
#         break
#     phone = input("请输入电话：")
#     address = input("请输入住址：")
#     age = input("请输入年龄：")
#     user_data[name] = {
#         "电话": phone,
#         "住址": address,
#         "年龄": age
#     }
#
# print("全部用户名：", list(user_data.keys()))
# selected_name = input("请选择一个用户名：")
# if selected_name in user_data:
#     print("用户", selected_name, "，电话是", user_data[selected_name]["电话"], "，地址是", user_data[selected_name]["住址"], "，年龄是", user_data[selected_name]["年龄"])
# else:
#     print("未找到该用户的信息。")
# 18、图书管理系统
# 支持选项，选择功能
# 图书管理系统：
# 1.添加图书
# 2.删除图书
# 3.修改图书
# 4.查询图书
# 5.显示所有图书
# 6.退出操作
#
# book_list = []
#
# def addBook():
#     book_name = input("请输入图书名称：")
#     book_list.append(book_name)
#     print("图书添加成功！")
#
# def deleteBook():
#     book_name = input("请输入要删除的图书名称：")
#     if book_name in book_list:
#         book_list.remove(book_name)
#         print("图书删除成功！")
#     else:
#         print("未找到该图书。")
#
# def modifyBook():
#     book_name = input("请输入要修改的图书名称：")
#     new_book_name = input("请输入新的图书名称：")
#     if book_name in book_list:
#         index = book_list.index(book_name)
#         book_list[index] = new_book_name
#         print("图书修改成功！")
#     else:
#         print("未找到该图书。")
#
# def searchBook():
#     book_name = input("请输入要查询的图书名称：")
#     if book_name in book_list:
#         print("图书已存在。")
#     else:
#         print("未找到该图书。")
#
# def displayBooks():
#     print("所有图书列表：", book_list)
#
# while True:
#     print("=====================")
#     print("图书管理系统")
#     print("1. 添加图书")
#     print("2. 删除图书")
#     print("3. 修改图书")
#     print("4. 查询图书")
#     print("5. 显示所有图书")
#     print("6. 退出操作")
#     choice = input("请选择操作：")
#
#     if choice == "1":
#         addBook()
#     elif choice == "2":
#         deleteBook()
#     elif choice == "3":
#         modifyBook()
#     elif choice == "4":
#         searchBook()
#     elif choice == "5":
#         displayBooks()
#     elif choice == "6":
#         break
#     else:
#         print("无效的选择！")
# 19、预设一个 0~9 之间的整数，让用户猜一猜并输入所猜的数，如果大于预设的数，显示“太大” ；小于预设的数，显示“太小” ，如此循环，直至猜中该数，显示“恭喜！你猜中了！ ”（使用random模块）
#
# import random
#
# target_num = random.randint(0, 9)
# guess_num = -1
#
# while guess_num != target_num:
#     guess_num = int(input("猜一猜："))
#     if guess_num > target_num:
#         print("太大了！")
#     elif guess_num < target_num:
#         print("太小了！")
#     else:
#         print("恭喜！你猜中了！")
# 20、用户分别从键盘输入4个整数和3个整数组成两个列表list1和list2，将列表list2合并到list1中，并在list1末尾再添加两个数字90和100，然后对list1降序排列，最后输出最终的列表list1
#
# list1 = []#定义一个列表list1
# list2 = []#定义一个列表list2
#
# for i in range(4):#循环四次
#     num1 = int(input("请输入第一个列表的整数："))#键入强转int赋值给num1
#     list1.append(num1)#四次num1增加到list1中
#
# for i in range(3):#循环三次
#     num2 = int(input("请输入第二个列表的整数："))#键入强转int赋值给num2
#     list2.append(num2)#三次num2增加到list2中
#
# list1.extend(list2)
# list1.extend([90, 100])
# list1.sort(reverse=True)
# print("最终的列表：", list1)
# 21、
# t1 = (1, 99, 3, "str", [1, 8], 99)
# 元组中出现重复的次数，统计每个数对应索引，比如说99的这个数字，要有1，还有5
# count_dict = {}
# index_dict = {}
#
# for i, item in enumerate(t1):
#     if isinstance(item, list):
#         key = tuple(item)  # 将列表转换为元组
#     else:
#         key = item
#
#     if key not in count_dict:
#         count_dict[key] = 1
#         index_dict[key] = [i]
#     else:
#         count_dict[key] += 1
#         index_dict[key].append(i)
#
# print("Count of each item:")
# print(count_dict)
# print("Index of each item:")
# print(index_dict)

# ===========================================

# t1 = (1, 99, 3, "str", [1, 8], 99)
#
# count_dict = {}
# index_dict = {}
#
# for index, value in enumerate(t1):
#     if value not in count_dict:
#         count_dict[value] = 1
#         index_dict[value] = [index]
#     else:
#         count_dict[value] += 1
#         index_dict[value].append(index)
#
# print("重复数出现的次数:")
# for value, count in count_dict.items():
#     if count > 1:
#         print(value, ":", count)
#
# print("每个重复数对应的索引:")
# for value, indexes in index_dict.items():
#     if len(indexes) > 1:
#         print(value, ":", indexes)